package org.byqh.dqeai.entity.proxy;

import com.easy.query.core.expression.parser.core.available.TableAvailable;
import com.easy.query.core.proxy.AbstractProxyEntity;
import com.easy.query.core.proxy.SQLColumn;
import com.easy.query.core.proxy.SQLSelectAsExpression;
import com.easy.query.core.proxy.fetcher.AbstractFetcher;
import com.easy.query.core.proxy.core.EntitySQLContext;
import org.byqh.dqeai.entity.PkAppRuntimeCondition;
import com.easy.query.core.proxy.columns.types.SQLStringTypeColumn;
import com.easy.query.core.proxy.columns.types.SQLIntegerTypeColumn;

/**
 * this file automatically generated by easy-query, don't modify it
 * 当前文件是easy-query自动生成的请不要随意修改
 * 如果出现属性冲突请使用@ProxyProperty进行重命名
 *
 * @author easy-query
 */
public class PkAppRuntimeConditionProxy extends AbstractProxyEntity<PkAppRuntimeConditionProxy, PkAppRuntimeCondition> {

    private static final Class<PkAppRuntimeCondition> entityClass = PkAppRuntimeCondition.class;

    public static final PkAppRuntimeConditionProxy TABLE = createTable().createEmpty();

    public static PkAppRuntimeConditionProxy createTable() {
        return new PkAppRuntimeConditionProxy();
    }

    public PkAppRuntimeConditionProxy() {
    }

    /**
     * {@link PkAppRuntimeCondition#getRuntimeCode}
     */
    public SQLStringTypeColumn<PkAppRuntimeConditionProxy> runtimeCode() {
        return getStringTypeColumn("runtimeCode");
    }

    /**
     * {@link PkAppRuntimeCondition#getConditionId}
     */
    public SQLStringTypeColumn<PkAppRuntimeConditionProxy> conditionId() {
        return getStringTypeColumn("conditionId");
    }

    /**
     * 0:注册表值包含的版本号;1为注册表值
     * {@link PkAppRuntimeCondition#getConditionType}
     */
    public SQLStringTypeColumn<PkAppRuntimeConditionProxy> conditionType() {
        return getStringTypeColumn("conditionType");
    }

    /**
     * {@link PkAppRuntimeCondition#getRegKey}
     */
    public SQLStringTypeColumn<PkAppRuntimeConditionProxy> regKey() {
        return getStringTypeColumn("regKey");
    }

    /**
     * {@link PkAppRuntimeCondition#getRegSubkey}
     */
    public SQLStringTypeColumn<PkAppRuntimeConditionProxy> regSubkey() {
        return getStringTypeColumn("regSubkey");
    }

    /**
     * {@link PkAppRuntimeCondition#getRegValue}
     */
    public SQLStringTypeColumn<PkAppRuntimeConditionProxy> regValue() {
        return getStringTypeColumn("regValue");
    }

    /**
     * {@link PkAppRuntimeCondition#getContentValue}
     */
    public SQLStringTypeColumn<PkAppRuntimeConditionProxy> contentValue() {
        return getStringTypeColumn("contentValue");
    }

    /**
     * {@link PkAppRuntimeCondition#getContentComparison}
     */
    public SQLStringTypeColumn<PkAppRuntimeConditionProxy> contentComparison() {
        return getStringTypeColumn("contentComparison");
    }

    /**
     * {@link PkAppRuntimeCondition#getVersionMinimum}
     */
    public SQLStringTypeColumn<PkAppRuntimeConditionProxy> versionMinimum() {
        return getStringTypeColumn("versionMinimum");
    }

    /**
     * {@link PkAppRuntimeCondition#getVersionMaximum}
     */
    public SQLStringTypeColumn<PkAppRuntimeConditionProxy> versionMaximum() {
        return getStringTypeColumn("versionMaximum");
    }

    /**
     * {@link PkAppRuntimeCondition#getConditionSeq}
     */
    public SQLIntegerTypeColumn<PkAppRuntimeConditionProxy> conditionSeq() {
        return getIntegerTypeColumn("conditionSeq");
    }

    @Override
    public Class<PkAppRuntimeCondition> getEntityClass() {
        return entityClass;
    }

    /**
     * 数据库列的简单获取
     *
     * @return
     */
    public PkAppRuntimeConditionProxyFetcher FETCHER = new PkAppRuntimeConditionProxyFetcher(this, null, SQLSelectAsExpression.empty);

    public static class PkAppRuntimeConditionProxyFetcher extends AbstractFetcher<PkAppRuntimeConditionProxy, PkAppRuntimeCondition, PkAppRuntimeConditionProxyFetcher> {

        public PkAppRuntimeConditionProxyFetcher(PkAppRuntimeConditionProxy proxy, PkAppRuntimeConditionProxyFetcher prev, SQLSelectAsExpression sqlSelectAsExpression) {
            super(proxy, prev, sqlSelectAsExpression);
        }

        /**
         * {@link PkAppRuntimeCondition#getRuntimeCode}
         */
        public PkAppRuntimeConditionProxyFetcher runtimeCode() {
            return add(getProxy().runtimeCode());
        }

        /**
         * {@link PkAppRuntimeCondition#getConditionId}
         */
        public PkAppRuntimeConditionProxyFetcher conditionId() {
            return add(getProxy().conditionId());
        }

        /**
         * 0:注册表值包含的版本号;1为注册表值
         * {@link PkAppRuntimeCondition#getConditionType}
         */
        public PkAppRuntimeConditionProxyFetcher conditionType() {
            return add(getProxy().conditionType());
        }

        /**
         * {@link PkAppRuntimeCondition#getRegKey}
         */
        public PkAppRuntimeConditionProxyFetcher regKey() {
            return add(getProxy().regKey());
        }

        /**
         * {@link PkAppRuntimeCondition#getRegSubkey}
         */
        public PkAppRuntimeConditionProxyFetcher regSubkey() {
            return add(getProxy().regSubkey());
        }

        /**
         * {@link PkAppRuntimeCondition#getRegValue}
         */
        public PkAppRuntimeConditionProxyFetcher regValue() {
            return add(getProxy().regValue());
        }

        /**
         * {@link PkAppRuntimeCondition#getContentValue}
         */
        public PkAppRuntimeConditionProxyFetcher contentValue() {
            return add(getProxy().contentValue());
        }

        /**
         * {@link PkAppRuntimeCondition#getContentComparison}
         */
        public PkAppRuntimeConditionProxyFetcher contentComparison() {
            return add(getProxy().contentComparison());
        }

        /**
         * {@link PkAppRuntimeCondition#getVersionMinimum}
         */
        public PkAppRuntimeConditionProxyFetcher versionMinimum() {
            return add(getProxy().versionMinimum());
        }

        /**
         * {@link PkAppRuntimeCondition#getVersionMaximum}
         */
        public PkAppRuntimeConditionProxyFetcher versionMaximum() {
            return add(getProxy().versionMaximum());
        }

        /**
         * {@link PkAppRuntimeCondition#getConditionSeq}
         */
        public PkAppRuntimeConditionProxyFetcher conditionSeq() {
            return add(getProxy().conditionSeq());
        }

        @Override
        protected PkAppRuntimeConditionProxyFetcher createFetcher(PkAppRuntimeConditionProxy cp, AbstractFetcher<PkAppRuntimeConditionProxy, PkAppRuntimeCondition, PkAppRuntimeConditionProxyFetcher> prev, SQLSelectAsExpression sqlSelectExpression) {
            return new PkAppRuntimeConditionProxyFetcher(cp, this, sqlSelectExpression);
        }
    }
}
